package com.ruoyi.system.service;
import java.math.BigDecimal;
import java.util.List;

import com.ruoyi.system.domain.HatchetAgent;
import com.ruoyi.system.domain.HatchetMoneyChange;

/**
 * 提现记录 服务层
 * 
 * @author ruoyi
 * @date 2019-02-18
 */
public interface IHatchetMoneyChangeService {
	/**
	 * 查询提现记录信息
	 * 
	 * @param iD
	 *            提现记录ID
	 * @return 提现记录信息
	 */
	public HatchetMoneyChange selectHatchetMoneyChangeById(String iD);

	/**
	 * 查询提现记录列表
	 * 
	 * @param hatchetMoneyChange
	 *            提现记录信息
	 * @return 提现记录集合
	 */
	public List<HatchetMoneyChange> selectHatchetMoneyChangeList(HatchetMoneyChange hatchetMoneyChange);

	/**
	 * 新增提现记录
	 * 
	 * @param hatchetMoneyChange
	 *            提现记录信息
	 * @return 结果
	 */
	public int insertHatchetMoneyChange(HatchetMoneyChange hatchetMoneyChange);

	/**
	 * 修改提现记录
	 * 
	 * @param hatchetMoneyChange
	 *            提现记录信息
	 * @return 结果
	 */
	public int updateHatchetMoneyChange(HatchetMoneyChange hatchetMoneyChange);

	/**
	 * 删除提现记录信息
	 * 
	 * @param ids
	 *            需要删除的数据ID
	 * @return 结果
	 */
	public int deleteHatchetMoneyChangeByIds(String ids);

	public int changeStatus(HatchetMoneyChange hatchetMoneyChange);

	public List<HatchetMoneyChange> selectFenRenChangeList(HatchetMoneyChange hatchetMoneyChange);

	/**
	 * @param agentNo 代理商编号
	 * @param concat时间起始
	 * @param concat2时间截至
	 * @return 提现次数
	 */
	public int findCountByAgentNO(String agentNo,String now);
	
	/**
	 * 执行提现操作
	 * @param agent
	 * @param money
	 * @return
	 */
	public boolean doMoneyChange (HatchetAgent agent,String money) throws RuntimeException;

	/**
	 * 查询代理商每天的收益
	 * @param hatchetMoneyChange
	 * @return
	 */
	public List<HatchetMoneyChange> selectFenRenChangeListByDay(HatchetMoneyChange hatchetMoneyChange);

	/**
	 * 查询代理商每天总收益（不分组）
	 * @param hatchetMoneyChange
	 * @return
	 */
	public BigDecimal selectSumFenRenChangeListByDay(HatchetMoneyChange hatchetMoneyChange);
	

	/**
	 * 查询代理商或者商户总收益
	 * @param userId 用户或者代理商编号
	 * @return
	 */
	public BigDecimal selectSumFenRenChangeByUserId(String userId);
	
	/**
	 * 收益分析（查询代理商或者商户对自己的贡献收益）
	 * @param hatchetMoneyChange
	 * @return
	 */
	public BigDecimal selectMoneyAnalyze(HatchetMoneyChange hatchetMoneyChange);
	
	/**
	 * 查询分润总金额
	 * @param hatchetMoneyChange
	 * @return
	 */
	public BigDecimal selectSumMoney(HatchetMoneyChange hatchetMoneyChange);
	
	/**
	 * 查询提现总金额
	 * @param hatchetMoneyChange
	 * @return
	 */
	public BigDecimal selectTixianSumMoney(HatchetMoneyChange hatchetMoneyChange);
	public BigDecimal selectSumMoneyByMoneyType(HatchetMoneyChange moneyChange);
}	


